;*********************************************************************************************************
;                                               VECTORS.ASM
;
;   Copyright 2003, Validated Software Corporation, Lafayette, CO
;   All Rights Reserved

;   Author:     Mark Scott-Nash
;   Date:       03-Sep-03

;   References:
;   $Workfile: vectors.asm $
;
;   Description:    Interrupt vectors for the TMS320C6416 port on Code Composer Studio
;
;   Contents:
;
;   Revision History - latest change on top
;
;   $Log: /UC03/Source/6414-DSP/src/vectors.asm $
;
;
;
;*********************************************************************************************************


FP	.set	A15
DP	.set	B14
SP	.set	B15

DelaySlot_for_Branch  .set 5

          .global  __vector  ; /* Memory location for default   */
          .global  _reset
          .global  _c_int00  ;
          .global  _TimerOneTick

           .data
           .global _VECTORS_ASM
_VECTORS_ASM: .string "$Header: /UC03/Source/6414-DSP/src/vectors.asm 4     1/29/04 8:54a Jelliott $"
           .byte 0
           .text

	.align 32
__vector  .sect  ".vector"
        MVK.d2     0,B4        ; Disable iterrupts globally.
        MVC.S2     B4,CSR
        MVK.d2     -1,B4       ; Clear pending interrupts.
        MVC.S2     B4,ICR
        MVKL     __vector,B0   ; Initialize ISTP to these vectors.
        MVKH     __vector,B0
        MVC        B0,ISTP
		b	      _c_int00     ; Continue to initialize the C runtime environment.

		b    		_NMI_Interrupt
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Reserved_One_Interrupt
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Reserved_Two_Interrupt
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_4_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_5_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_6_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_7_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_8_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_9_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_10_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_11_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_12_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b      		_Interrupt_13_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_Interrupt_14_Handler
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		b    		_TimerOneTick
		nop
		nop
		nop
		nop
		nop
		nop
		nop

	.text
        .align  32
_RESET_Interrupt
		b 	.s1	_c_int00
		nop  DelaySlot_for_Branch


	.text
        .align  32
_Reserved_One_Interrupt
_Reserved_Two_Interrupt
_Interrupt_3_Handler
_Interrupt_4_Handler
_Interrupt_5_Handler
_Interrupt_6_Handler
_Interrupt_7_Handler
_Interrupt_8_Handler
_Interrupt_9_Handler
_Interrupt_10_Handler
_Interrupt_11_Handler
_Interrupt_12_Handler
_Interrupt_13_Handler
_Interrupt_14_Handler
_Interrupt_15_Handler
_NMI_Interrupt 						;NonMaskable Interrupt NMI-loads

        MVK.d2     0,B4    ; Disable iterrupts globally.
        MVC.S2     B4,CSR
        
_loopEndlessly
		b      .s1     _loopEndlessly
		nop		DelaySlot_for_Branch

        .end
